﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Data;

namespace prjCompras
{
    public partial class frmRelPedidoCompra : Form
    {
        public frmRelPedidoCompra()
        {
            InitializeComponent();
        }

        private void frmRelPedidoCompra_Load(object sender, EventArgs e)
        {
            string sql_cond = "";

            sql_cond += "select 0 Codigo, 'Todos' Nome";
            sql_cond += " union all";
            sql_cond += " select Codigo, Nome from CondicaoPagamento";

            cmbxCondicaoPagamento.DataSource = Conexao.getInstance.executeQuery(sql_cond);

            cmbxCondicaoPagamento.ValueMember = "Codigo";
            cmbxCondicaoPagamento.DisplayMember = "Nome";
        }

        private void chckbxData_Click(object sender, EventArgs e)
        {
            grpbxData.Enabled = chckbxData.Checked;
        }

        private void btnGerar_Click(object sender, EventArgs e)
        {
            string sql = @"set dateformat 'dmy';
                    select pc.Codigo, 
                           pc.Data, 
                           cp.Nome Pagamento, 
                           SUM(pm.Quantidade * pm.ValorUnitario) Total
                      from PedidoCompra pc,
                           CondicaoPagamento cp,
                           PedidoMaterial pm
                     where pc.CodigoCondicaoPagamento = cp.Codigo
                       and pc.Codigo = pm.CodigoPedido";

            if (chckbxData.Checked)
            {
                sql += " and pc.Data between '" + dtmpckerDataInicio.Value.ToShortDateString() + "' and '" + dtmpckerDataFim.Value.ToShortDateString() + "'";
            }

            if (cmbxCondicaoPagamento.SelectedIndex != 0)
            {
                sql += " and pc.CodigoCondicaoPagamento = " + cmbxCondicaoPagamento.SelectedValue.ToString();
            }

            sql += " group by pc.Codigo, pc.Data, cp.Nome";

            SqlDataAdapter dt = Conexao.getInstance.executeQueryRelatorio(sql);

            dtstPedidoCompra dt_req = new dtstPedidoCompra();
            dt.Fill(dt_req, "Pedido");

            sql = @"select m.Codigo,
                           m.Nome,
                           pm.Quantidade,
                           pm.ValorUnitario,
                           pm.CodigoPedido
                      from PedidoMaterial pm,
                           Material m
                     where pm.CodigoMaterial = m.Codigo";
            dt = Conexao.getInstance.executeQueryRelatorio(sql);
            dt.Fill(dt_req, "PedidoMaterial");

            rptPedidoGerado rel = new rptPedidoGerado();
            rel.SetDataSource(dt_req);
            frmRelatorio f = new frmRelatorio();
            f.Text = "Relatório de Pedido de Compras";
            f.crystalReportViewer1.ReportSource = rel;
            f.ShowDialog();
        }
    }
}
